package com.jlpay.open.jlpay.sdk.java.model.ledger.request;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.ledger.LedgerBaseRequest;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 *
 * @author dengwenning
 * @since 2024/8/30
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class MerchIssueOpenRequest extends LedgerBaseRequest {

    /**
     * 嘉联分配的商户号（出账方），
     * 示例值：849440358120001
     */
    private String mchId;

    /**
     * 02：余额分账，
     * 示例值：02
     */
    private String ledgerModule;

    /**
     * 出账方的单笔最大分账比例，1-100的整数，
     * 示例值：20
     */
    private Integer maxSplitRate;

    /**
     * 出账方提供的承诺授权函，附件图片形式最多20张，
     * 示例值：["p/1.png", "p/2.png"]
     */
    private List<String> sourceIds;

    /**
     * 分账手续费费率，单位为万分之一
     * 示例值：2
     */
    private Integer feeRate;

    /**
     * 分账手续费承担方
     * 枚举值
     * 0：出账方承担
     * 1：入账方承担
     * 示例值：0
     */
    private String pbthf;

    /**
     * 分账手续费保底金额，单位分，整数
     * 示例值：1
     */
    private Integer lowAmt;

    /**
     * 分账手续费封顶金额，单位分，整数
     * 示例值：10
     */
    private Integer upAmt;

    /**
     * 出账方注册审核结果通知地址
     */
    private String notifyUrl;

    @Override
    public String path() {
        return "/open/ledger/merch/issue/open";
    }

}
